package org.mef.sprig.json; import java.util.HashMap; import java.util.List; import java.util.Map; import org.mef.sprig.SprigLogger; import org.mef.sprig.util.ResourceReader; import play.Logger; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonFileReader implements Reader { private String dir; private String className; public JsonFileReader(String dir, String className) { this.dir = dir; this.className = className; } public List<Map<String,Object>> load() throws Exception { String path = className + ".json"; String json = ResourceReader.readSeedFile(path, this.dir); if (json == null || json.isEmpty()) //fix later!! { log(String.format("SEED LOAD failed: %s", path)); return null; } log(String.format("SEED %s loading..", path)); return parseType(json); } @SuppressWarnings({ "unchecked", "rawtypes" }) public List<Map<String,Object>> parseType(String inputJson) throws Exception { Map<String,Object> myMap = new HashMap<String, Object>(); ObjectMapper objectMapper = new ObjectMapper(); String mapData = inputJson; myMap = objectMapper.readValue(mapData, new TypeReference<HashMap<String,Object>>() {}); // System.out.println("Map using TypeReference: "+myMap); List<Map<String,Object>> myList = (List<Map<String, Object>>) myMap.get("records"); return myList; } private void log(String s) { SprigLogger.log(s); } }